package ligapes.model.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import ligapes.model.bean.Usuario;
import ligapes.util.HibernateUtil;

public class UsuarioDAO {

	private DAO<Usuario> dao;
	private Session session;
	
	public UsuarioDAO() {
		this.dao = new DAO<Usuario>(Usuario.class);
		this.session = HibernateUtil.getSessionFactory().getCurrentSession();
	}

	public void salvar(Usuario t) {
		Integer id = t.getId();
		if (id == 0 || id == null) {
			dao.salvar(t);
		} else {
			dao.atualizar(t);
		}
	}

	public void excluir(Usuario t) {
		dao.excluir(t);
	}

	public Usuario carregarPorId(Integer id) {
		return dao.carregarPorId(id);
	}

	public List<Usuario> listar() {
		return dao.listar();
	}
	
	public Usuario carregaPorLoginESenha(String login, String senha) {
		Query query = this.session.createQuery("select u from Usuario u " +
				"where u.login = :pLogin and u.senha = :pSenha");
		query.setParameter("pLogin", login);
		query.setParameter("pSenha", senha);
		Usuario usuario = (Usuario) query.uniqueResult();
		return usuario;
	}
}
